/*
 * @Author: wu jian
 * @Date: 2021-06-23 14:38:10
 * @LastEditTime: 2021-06-23 14:43:15
 * @LastEditors: wu jian
 */


// 请实现一个函数，输入一个整数（以二进制串形式），输出该数二进制表示中 1 的个数。例如，把 9 表示成二进制是 1001，有 2 位是 1。因此，如果输入 9，则该函数输出 2。

// 来源：力扣（LeetCode）
// 链接：https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof
// 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

/**
 * @param {number} n - a positive integer
 * @return {number}
 */
let hammingWeight = function (n: number): number {
  let count: number = 0
  while (n !== 0) {
    n &= n - 1
    count++
  }
  return count
};

console.log(hammingWeight(0b00000001000110))